package com.kuqi;

import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.KeyEvent;

import com.kuqi.ViewComponent.VPRindcator.TitlePageIndicator;
import com.kuqi.adapter.MainTabAdapter;
import com.kuqi.core.AppActivity;
import com.kuqi.core.ApplicationPersistent;

public class MainActivity extends AppActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_page);

        // 隐藏顶部标题栏
        hideActionBar();

        // 我连通知状态栏也不想要
        hideStateTitle(false);

        //FragmentPagerAdapter + ViewPager是比较常见的滑动切换页面方案
        //FragmentPagerAdapter默认会缓存3个界面
        FragmentPagerAdapter adapter = new MainTabAdapter(getSupportFragmentManager(),0);
        ViewPager pager = findViewById(R.id.pager);  // pager是主要内容显示区
        pager.setOffscreenPageLimit(5); // page预加载页面的数量，这里设置前后各5个，即内存最多同时hold 11个页面
        pager.setAdapter(adapter);

        // TitlePageIndicator在VPR_indicator中定义使用,本身是个框架,这里被我们自定义修改使用了
        TitlePageIndicator indicator = findViewById(R.id.indicator); // indicator是功能选择用的标题栏
        indicator.setViewPager(pager); //将选择区域和显示区域绑定
        indicator.setCurrentItem(1);  //默认选中第二个

        //关系提示 : indicator拥有viewpager  viewpager拥有adapter
    }


    //点击返回按钮提示是否退出程序
    @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK  //是返回键
                && event.getAction() == KeyEvent.ACTION_DOWN  //按下操作
                && event.getRepeatCount() == 0) {  //只点了一次
            //具体弹窗代码(使用的是系统自定义的弹窗)
            new AlertDialog.Builder(this)
                    .setTitle("确定退出程序么")
                    .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            //什么都不需要做,窗体会自己注销
                        }
                    })
                    .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
                            //使用此方法可以销毁当前activity,
                            //但是并不会终止application,而且也不会立刻释放占用的资源
                            //所以此处不可以使用finish
                            //finish();
                            //用下面这个方法杀死整个系统进程
                            System.exit(0);
                        }
                    }).show();
            return true;
        }
        return true;
    }


    @Override
    protected void onStop() {
        super.onStop();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
    }

}
